/*    */ package blockbuster.math.molang.expressions;
/*    */ 
/*    */ import blockbuster.math.Operation;
/*    */ import blockbuster.math.molang.MolangParser;
/*    */ import com.google.gson.JsonElement;
/*    */ import com.google.gson.JsonPrimitive;
/*    */ 
/*    */ 
/*    */ 
/*    */ public abstract class MolangExpression
/*    */ {
/*    */   public MolangParser context;
/*    */   
/*    */   public static boolean isZero(MolangExpression expression) {
/* 15 */     return isConstant(expression, 0.0D);
/*    */   }
/*    */ 
/*    */   
/*    */   public static boolean isOne(MolangExpression expression) {
/* 20 */     return isConstant(expression, 1.0D);
/*    */   }
/*    */ 
/*    */   
/*    */   public static boolean isConstant(MolangExpression expression, double x) {
/* 25 */     if (expression instanceof MolangValue) {
/*    */       
/* 27 */       MolangValue value = (MolangValue)expression;
/*    */       
/* 29 */       return (value.value instanceof blockbuster.math.Constant && Operation.equals(value.value.get().doubleValue(), x));
/*    */     } 
/*    */     
/* 32 */     return false;
/*    */   }
/*    */ 
/*    */   
/*    */   public static boolean isExpressionConstant(MolangExpression expression) {
/* 37 */     if (expression instanceof MolangValue) {
/*    */       
/* 39 */       MolangValue value = (MolangValue)expression;
/*    */       
/* 41 */       return value.value instanceof blockbuster.math.Constant;
/*    */     } 
/*    */     
/* 44 */     return false;
/*    */   }
/*    */ 
/*    */   
/*    */   public MolangExpression(MolangParser context) {
/* 49 */     this.context = context;
/*    */   }
/*    */ 
/*    */   
/*    */   public abstract double get();
/*    */   
/*    */   public JsonElement toJson() {
/* 56 */     return (JsonElement)new JsonPrimitive(toString());
/*    */   }
/*    */ }


/* Location:              D:\fanbian\[D][龙之核心]DragonCore-2.6.0.3.jar!\blockbuster\math\molang\expressions\MolangExpression.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */